package com.aoxin.mapper.course.webCourse;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.aoxin.model.course.SlfChildren;
import com.aoxin.model.dto.SelectDto;

public interface SlfChildrenMapper {

    /**
     * 通过孩子Id删除孩子
     *
     * @param childrenId
     * @return
     */
    Integer deleteByChildrenId(Integer childrenId);


    /**
     * 添加孩子
     * @param slfChildren
     * @return
     */
    Integer insertChildren(SlfChildren slfChildren);


    /**
     * 查询所有孩子|条件查询孩子
     *
     * @param slfChildren
     * @return
     */
    List<SlfChildren> getChildren(SlfChildren slfChildren);


    /**
     * 修改孩子
     * @param slfChildren
     * @return
     */
    Integer updateChildren(SlfChildren slfChildren);

    /**
     * 修改孩子校区
     * @param childrenId
     * @param schoolName
     * @return
     */
    Integer updateChildrenSchool(@Param("childrenId") Integer childrenId, @Param("schoolName") String schoolName);

    /**
     * 查询所有孩子id姓名
     * @return
     */
    List<SelectDto> getChildrenIdName();

    /**
     * 根据ID查询孩子
     * @param childrenId
     * @return
     */
    SlfChildren getAChildren(Integer childrenId);

    /**
     * 获取默认孩子Id
     * @return
     */
    Integer getDefaultChildrenId(Integer userId);

    /**
     * 根据userId获取全部孩子id
     * @param userId
     * @return
     */
    List<Integer> getChildrenId(Integer userId);

    /**
     * 修改默认孩子状态
     */
    void updateDefaultChildren(@Param("childrenId") Integer childrenId,@Param("userId") Integer userId);


    /**
     * 恢复默认孩子状态
     */
    void recoverChildren(@Param("childrenId") Integer childrenId,@Param("userId") Integer userId);
    
    /**
     * 查询所有状态为1
     * @param flag
     * @return
     */
    List<String> getChildrensVip();
    
    /**
     * 找到最新孩子ID
     * @param childrenId
     * @return
     */
    Integer getChildrenIdMax();

    /**
     * 检查是否有默认孩子
      * @param userId
     * @return
     */
    Integer checkChildren(Integer userId);
    /**
     *查询B类剩余课时
     * @param childrenId
     * @return
     */
    List<Map<String,Object>>queryChildrenSurplusClassHourB(@Param("childrenId") Integer childrenId);
    /**
     * 查询C类课程
     * @param childrenId
     * @return
     */
    List<Map<String,Object>>  queryChildrenSurplusClassHourC(@Param("childrenId") Integer childrenId);
    
    //查询是否为VIP
    Integer IsVip(Integer childrenId);

}